Претрага у дубину
Претрага у дубину можемо описати на следећи начин. Замислимо да обилазимо музеј који се састоји од повезаних сала. Музеј обилазимо тако што из сваке сале у коју дођемо прелазимо у неку наредну, до тада непосећену салу, све док је то могуће. Тек када то није могуће, враћамо се у салу из које смо дошли у текућу и проверавамо да ли из ње можемо одемо у неку до тада не посећену салу. Обилазак се завршава када се вратимо у почетну салу и установимо да из ње више не можемо да одемо ни у једну салу у којој до тада нисмо били.
Постоје два уобичајена начина да се имплементира претрага у дубину:
рекурзивна имплементација
имплементација уз помоћ стека
Прикажимо обе имплементације у облику псеудокода.
Рекурзивна имплементација:
obidji(polje): obelezi polje za sve neobelezene susede polja: obidji(sused)
Имплементација уз помоћ стека:
obidji(pocetno_polje): stavi pocetno_polje na stek obelezi pocetno_polje dok stek nije prazan: skini polje sa vrha steka za neobelezene susede tog polja: stavi suseda na stek obelezi suseda